package com.cskaoyan.javase.oop2._1extends._6protected._1two;

import com.cskaoyan.javase.oop2._1extends._6protected._0one.CurrentClazz;
import com.cskaoyan.javase.oop2._1extends._6protected._0one.SamePackageSonClazz;

/**
 * 不同包下的子类
 * 这时要想访问父类的受保护成员,仍然是需要创建对象的,创建对象的方式有:
 *      1.直接创建父类对象,用父类对象访问protected成员
 *          访问不到,没有权限
 *
 *      2.直接创建子类自身对象,来访问它自身从父类继承过来的protected成员
 *          可以访问,有权限
 *
 *      3.直接创建"兄弟姐妹"其它子类对象,来访问它们从父类继承过来的protected成员
 *          访问不到,没有权限
 *
 * @since 09:54
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class AnotherPackageSonClazz extends CurrentClazz {
    public static void main(String[] args) {
        // 1.直接创建父类对象,用父类对象访问protected成员
        CurrentClazz cc = new CurrentClazz();
        // 'num' has protected access in 'com.cskaoyan.javase.oop2._1extends._6protected._0one.CurrentClazz'. ';' expected.
        // cc.num

        // 2.直接创建子类自身对象,来访问它自身从父类继承过来的protected成员
        AnotherPackageSonClazz ac = new AnotherPackageSonClazz();
        System.out.println(ac.num);


        // 3.直接创建"兄弟姐妹"其它子类对象,来访问它们从父类继承过来的protected成员
        SamePackageSonClazz sc = new SamePackageSonClazz();
        // sc.num
    }
}
